Thiết kế Bitcoin

Tích hợp sẵn trong giao thức Bitcoin là công nghệ blockchain. Tất cả giao dịch mua và bán đều được cập nhật trên hệ thống lưu trữ máy tính ngang hàng, được gọi là blockchain (chuỗi khối) - là một cuốn sổ cái ghi lại số dư của mỗi tài khoản và lịch sử tất cả tài khoản tham gia giao dịch trước đó.

Blockchain - Chuỗi khối

Xem thêm: Blockchain
Chuỗi chính (màu đen) bao gồm chuỗi khối dài nhất tính từ khối khởi thủy (genesis) màu xanh. Khối orphan màu tím không được chấp nhận do không đạt sự đồng thuận của mạng lưới.

Mọi dữ liệu trên mạng Internet đều rất dễ dàng bị sao chép, mỗi giao dịch Bitcoin cũng chỉ là một khối thông tin. Bình thường, khi giao dịch trực tuyến, chúng ta sẽ cần đến một bên trung gian thứ ba mà chúng ta tin tưởng (ví dụ ngân hàng hay một người trung gian được tin cậy) với một cơ sở dữ liệu tập trung để xác minh giao dịch nhằm chống gian lận khi kẻ gian sử dụng lại khối thông tin này nhiều lần. Công nghệ blockchain đã giải quyết được bài toán này (double-spending) mà không cần tới bên trung gian thứ ba tin cậy. Blockchain là một cuốn sổ cái ghi lại tất cả các giao dịch. Dữ liệu trong cuốn sổ cái liên tục được mạng lưới máy tính ngang hàng trên thế giới cập nhật và bảo trì. Giao dịch khi A gửi X bitcoin cho B được ghi lại trên toàn hệ thống, tất cả các máy tính trong mạng này sẽ xác minh và ghi lại giao dịch đó vào cuốn sổ cái rồi cấp phát dữ liệu này tới các máy tính khác. Blockchain là một cơ sở dữ liệu phân tán vô chủ; các máy tính liên tục thực hiện việc kiểm toán độc lập bằng cách xác minh dữ liệu nhận tới và so sánh với chữ ký của giao dịch đó.

Về công nghệ, các giao dịch được xác minh bởi thuật toán chữ ký số dựa trên đường cong Elliptic (ECDSA)[63] và được xác nhận bởi chuỗi các quá trình xử lý lần lượt các hàm băm SHA256 bởi các thợ đào Bitcoin. Mỗi khối trong blockchain chứa tất cả thông tin giao dịch trong khối đó trong 1 cây Merkle - là một cây nhị phân có thứ tự được xây dựng từ một dãy các đối tượng dữ liệu sử dụng hàm băm - để đạt hiệu quả cao trong việc lưu trữ và xác minh với lượng dữ liệu lớn các giao dịch. Khi có một giao dịch không hợp lệ, hệ thống sẽ loại bỏ nó bằng cách chọn theo số đông. Cách giải quyết về sự đồng thuận này của công nghệ blockchain là lời giải cho bài toán các vị tướng Byzantine trong ngành khoa học máy tính.[64] Càng có nhiều máy tính tham gia vào hệ thống ngang hàng cho blockchain thì sức mạnh xử lý và độ an toàn của hệ thống blockchain đó càng cao.

Công nghệ blockchain có rất nhiều ứng dụng khác mà tiền tệ Bitcoin chỉ là một trong số đó, ví dụ: ứng dụng cho việc đăng ký sử dụng đất đai, các loại công chứng, hợp đồng thông minh (tự động cho phép hoặc hủy giao dịch với một số điều kiện được lập trình sẵn), đăng ký tên miền, quy trình bỏ phiếu,... khi các thuật toán trở nên đáng tin cậy hơn các bên trung gian thứ ba (mà có thể không đáng tin cậy vì tệ nạn tham nhũng). Công nghệ blockchain cho phép những người lạ có thể giao dịch an toàn với nhau mà không cần tin tưởng nhau.

Đào Bitcoin

Dữ liệu trong một khối Bitcoin

Để có thể được cả mạng lưới chấp nhận, khối mới cần phải chứa bằng chứng công việc (proof-of-work). Proof-of-work yêu cầu thợ đào tìm kiếm một số nonce, mà khi nội dung của khối được hash (hàm băm mật mã học) cùng nonce, kết quả tạo ra một số nhỏ hơn số target của mạng lưới (số target càng nhỏ thì độ khó càng cao). Nói cách khác: Proof-of-work rất dễ cho các máy tính xác nhận, nhưng cực kỳ mất nhiều thời gian để có thể tạo ra. Thợ đào phải thử rất nhiều giá trị nonce khác nhau trước khi đạt được độ khó mà mạng lưới yêu cầu.

Độ khó của việc đào Bitcoin[lower-alpha 1][65]

Cứ mỗi 2016 khối được tạo ra (mất khoảng 14 ngày), độ khó lại được mạng lưới tự động tinh chỉnh dựa trên khả năng của toàn bộ mạng lưới, với mục đích là để giữ khoảng thời gian giữa các khối mới được tạo ra là 10 phút. Từ tháng 3 năm 2014 tới tháng 3 năm 2015, số lượng nonce trung bình mà máy đào phải hash thử trước khi tạo được ra khối mới đã tăng từ 16,4 tỷ tỷ lên 200,5 tỷ tỷ.

Cách hệ thống proof-of-work hoạt động, kèm theo việc xâu chuỗi lại các khối khi dữ liệu của khối mới bao gồm hash của khối cũ, giúp cho việc thay đổi blockchain cực kỳ khó, khi mà kẻ tấn công cần phải thay đổi tất cả các khối phía sau để việc thay đổi một khối được chấp nhận. Điều này đòi hỏi kẻ tấn công cần có hơn 50% sức mạnh xử lý của toàn mạng Blockchain. Các khối mới liên tục được tạo ra, và độ khó của việc thay đổi 1 khối tăng dần theo thời gian với số lượng khối cần thay đổi (còn được gọi là mức xác thực của một khối - confirmations) tăng lên.[66]

Tổng số bitcoin đang lưu hành

Thợ đào (hoặc mỏ đào) Bitcoin tìm được ra khối mới sẽ được thưởng số bitcoin thưởng trong khối đó cộng toàn bộ phí giao dịch được xử lý trong khối đó. Tại thời điểm cuối năm 2016, phần thưởng đang là 12,5 bitcoin cho mỗi khối. Để nhận được phần thưởng này, một giao dịch đặc biệt có tên là coinbase được đưa vào thanh toán. Tất cả Bitcoin tồn tại được khởi tạo từ những giao dịch nguồn (coinbase) đó. Giao thức Bitcoin quy định rằng phần thưởng sẽ giảm một nửa sau mỗi 210.000 khối (khoảng 4 năm). Cuối cùng, phần thưởng sẽ tiệm cận tới 0 khi số bitcoin trên thị trường đạt ngưỡng 21 triệu bitcoin vào năm 2140. Lúc đó, thợ đào sẽ chỉ có phần thưởng là phí giao dịch. Nói cách khác, Satoshi đã tạo ra một chính sách tiền tệ dựa trên sự khan hiếm nhân tạo khi sáng tạo ra Bitcoin rằng sẽ chỉ có tổng cộng 21 triệu bitcoin được lưu hành.

Trong thực tế, các thợ đào thường sẽ tham gia vào các mỏ đào lớn để tập hợp được khả năng tính toán của máy đào thành viên trong mỏ đó nhằm tăng xác suất tạo được ra khối mới, và sau đó tiền công sẽ được chia đều theo khối lượng công việc cho thành viên trong mỏ đào. Việc đào mỏ đã tạo ra một loạt công nghệ chuyên biệt để đào Bitcoin. Hiện tại, hệ thống đào Bitcoin hiệu quả nhất sử dụng vi mạch tích hợp chuyên dụng ASIC vì chúng xử lý tính toán số học nhanh hơn bộ vi xử lý máy tính (kể cả trong bo mạch đồ họa) mà lại khi sử dụng ít điện năng hơn.[67]

Một mỏ đào Bitcoin của Genesis Mining tại Iceland.

Tại Việt Nam, trước năm 2014, các thợ đào tiền mã hóa tại Việt Nam chủ yếu sử dụng bo mạch đồ họa của AMD để đào Bitcoin vì hiệu suất tính toán cao của chúng, khiến cho giá các loại bo mạch đồ họa này tăng cao. Tuy nhiên, sau đó họ chuyển sang đào các loại tiền mã hóa khác như Ethereum, Zcash, Litecoin,... vì khó cạnh tranh được với các mỏ đào ASIC chuyên nghiệp. Giới đào mỏ trong nước hoạt động tương đối khép kín vì tính chất nhạy cảm của Bitcoin và một phần trong số họ sử dụng nguồn điện không hợp pháp và không đóng thuế thu nhập.[68]

Tài khoản

Một địa chỉ Bitcoin mẫu

Mỗi tài khoản Bitcoin được biểu diễn dưới dạng 1 ví Bitcoin. Mỗi ví Bitcoin bao gồm địa chỉ Bitcoin công khai (hash của public key) và khóa riêng tư (private key). Một địa chỉ có 160 bit dữ liệu, vì vậy có thể tạo ra tổng cộng 2160 địa chỉ Bitcoin - tương đương 1048 địa chỉ (để so sánh: có tổng cộng khoảng 1047 phân tử nước trên trái đất). Ngoài ra địa chỉ còn bao gồm 4 byte checksum nên xác suất mạng lưới chấp nhận địa chỉ Bitcoin gõ sai cực kỳ thấp.

Bất kỳ ai cũng có thể gửi Bitcoin đến một chiếc ví bằng địa chỉ công khai, còn khoá riêng tư phải được nhập khi chủ ví muốn gửi Bitcoin đi. Vì vậy, việc sở hữu Bitcoin được định nghĩa là sự nắm giữ khoá riêng tư của 1 địa chỉ Bitcoin. Một khi khoá riêng tư bị mất, mạng lưới Bitcoin sẽ không thể xác nhận được việc sở hữu số bitcoin đó, và số bitcoin trong địa chỉ đó sẽ vĩnh viễn bị mất. Khoảng 20% số bitcoin đang lưu hành được cho là bị mất vĩnh viễn do người dùng bị mất khóa riêng tư. Số tiền bị mất có giá trị thị trường khoảng 20 tỷ đô la Mỹ vào tháng 7 năm 2018.[69] Ngoài ra, có khoảng 1 triệu bitcoin đã bị đánh cắp, tương đương 7 tỷ đô la Mỹ vào tháng 7 năm 2018.[70]

Ví cho phép người dùng hoàn tất thanh toán giữa các địa chỉ khác nhau bằng cách cập nhật vào blockchain. Khi thực hiện giao dịch bằng thiết bị di động, người dùng có thể sử dụng mã QR để đơn giản hoá quy trình thanh toán.

Ví Bitcoin Trezor

Có nhiều loại công cụ quản lý Ví Bitcoin hiện hành. Điển hình: Ví trên nền tảng Web dễ sử dụng nhất, bao gồm: Coinbase, Blockchain.info, BitGo, Xapo; Ví phần mềm: Armory, Bitcoin Core; Ví cho thiết bị di động: breadwallet, Blockchain.info; Ví phần cứng: Ledger Nano S, Trezor; Hoặc bạn có thể tự in ví giấy cho mình để cất trong tủ an toàn từ một trong các ví trên.[71]

Giao dịch

Một giao dịch đơn giản. Thực tế, một giao dịch có thể có nhiều hơn 1 đầu vào và 1 đầu ra.

Một giao dịch là một sự dịch chuyển Bitcoin được phát tán tới mạng lưới Bitcoin và gom vào khối. Mỗi giao dịch đều bao gồm đầu vào (là đầu ra trong giao dịch cũ của số Bitcoin đó), đầu ra (chứa thông tin giao dịch) và một đoạn script chứa các điều kiện giao dịch. Đoạn script được viết bằng ngôn ngữ tương tự như ngôn ngữ Forth này được thiết kế một cách tối giản bởi Satoshi, là một chương trình không Turing-complete để tránh vòng lặp vô hạn. Việc sử dụng script trong giao dịch giúp tích hợp các tính năng nâng cao như hợp đồng thông minh, chỉ cho thanh toán nếu 2 trong 3 bên đồng ý. Giao dịch chỉ được mạng lưới chấp nhận cho vào khối nếu scriptSig kết hợp scriptPubKey trong chương trình đó trả về giá trị true và tổng giá trị trong đầu ra không cao hơn tổng giá trị đầu vào. Chênh lệch giữa đầu ra và đầu vào chính là phí giao dịch trả cho mạng lưới.

Số lượng giao dịch bitcoin mỗi tháng (thang đo logarithm)[65]
Số đầu ra chưa chi tiêu

Tính bảo mật

Xem thêm: bảo mật

Cũng giống như các chính phủ phụ thuộc vào quyền lực của quân đội và cơ quan hành pháp để đảm bảo an ninh tiền tệ, qua đó mang lại lòng tin và giá trị cho tiền pháp định, thì độ an toàn của hệ thống Bitcoin phụ thuộc vào khả năng xử lý (hashing power) của toàn bộ mạng lưới blockchain để chống lại các nguy cơ phá hoại đồng thời mang lại giá trị, niềm tin cho Bitcoin. Đã có nhiều vụ trộm Bitcoin thành công xảy ra nhưng tất cả đều có một đặc điểm chung là do nạn nhân để lộ khóa riêng tư cho kẻ tấn công. Cho tới nay, giao thức Bitcoin vẫn chưa hề có lỗ hổng bảo mật nào để làm mất Bitcoin của người dùng mà không dùng đến khóa riêng tư.

Tính riêng tư

Bitcoin là loại tiền tệ bán ẩn danh, tức là số tiền không gắn với thực thể trong thế giới thật, mà gắn với địa chỉ Bitcoin. Tuy chủ sở hữu địa chỉ Bitcoin không được xác định rõ ràng, nhưng bù lại các giao dịch lại được công khai. Ngoài ra, các giao dịch có thể được liên kết với cá nhân hoặc công ty thông qua việc phân tích dòng giao dịch (ví dụ: nếu các giao dịch chi tiêu từ nhiều nguồn đầu vào thì có thể các nguồn đó đều chung chủ) và kết hợp dữ liệu đến từ các nguồn đã được định danh (các sàn giao dịch Bitcoin có thể được yêu cầu lưu trữ thông tin cá nhân người sử dụng). Mặc dù vậy, cũng như tiền mặt, việc xác định địa chỉ Bitcoin nào gắn với người nào là tương đối khó. Để tăng tính riêng tư, mỗi giao dịch cần sử dụng một địa chỉ Bitcoin mới.

Sự tiến hoá của phần mềm Bitcoin

Phần mềm Bitcoin được phát hành dưới dạng mã nguồn mở, tức là ai cũng có thể xem được mã nguồn và thay đổi nó. Khi có một tính năng mới cần đưa vào Bitcoin, nhà phát triển phần mềm sẽ đưa ra 1 BIP (Bitcoin Improvement Proposals), bao gồm 1 pull request trên Github. Người sử dụng sẽ bình chọn những tính năng mà họ đồng ý bằng cách tải phiên bản Bitcoin chứa chúng về. Kể cả khi Satoshi đề xuất một thay đổi mà người dùng không muốn, họ có thể chọn cách không tải về và chạy nó. Bitcoin, cũng như các dự án mã nguồn mở khác, là một loại dân chủ không thủ lĩnh - một phương pháp mới để chi phối hành vi trực tuyến của con người. Mỗi máy tính là một phiếu bầu, và ai cũng có thể đưa ra luật mới. Vì Bitcoin là phần mềm tiến hoá được, nên những đồng tiền mã hoá khác rất khó để có thể cạnh tranh được với nó.

Quản trị

Bitcoin là một phần mềm mã nguồn mở mà ban đầu được điều hành bởi Satoshi Nakamoto. Nakamoto rời vị trí này vào năm 2010 và giao chìa khóa cảnh báo mạng cho Gavin Andresen.[72] Andresen tuyên bố ông đã tìm cách phân quyền kiểm soát và cho biết: "Ngay khi Satoshi rời đi và đặt dự án lên vai tôi, một trong những điều đầu tiên tôi làm là cố gắng phân quyền cho điều đó. Vì vậy, kể cả trong trường hợp tôi bị xe buýt đâm, dự án vẫn sẽ rõ ràng được tiếp tục". Khóa báo động này sau đó đã được chính Gavin hủy bỏ để biến Bitcoin thành một mạng lưới hoàn toàn phân quyền.

Việc quản lý một cách phân quyền đã mang tới nhiều tranh cãi về con đường mà Bitcoin sẽ được phát triển trong tương lai. Phần mềm Bitcoin nguyên thủy với tên gọi là Bitcoin Core đã có nhiều phiên bản cạnh tranh (fork) để đề xuất giải quyết các vấn đề quản trị khác nhau và gây tranh cãi. Lựa chọn thay thế phổ biến nhất hiện nay là Bitcoin Cash - đã tạo ra một cuộc nội chiến chính trị trong mạng lưới Bitcoin với Bitcoin Core suốt từ năm 2015 tới nay.[73] Cụ thể, cuộc chiến bắt nguồn từ những người cố gắng tăng khả năng xử lý giao dịch của mạng lưới Bitcoin, để có thể xử lý được nhiều giao dịch hơn so với giới hạn ban đầu là 7 giao dịch mỗi giây. Những phiên bản khác nhau của Bitcoin chính là những kỹ thuật giải quyết vấn đề này khác nhau: Bitcoin Cash loại bỏ giới hạn cứng 1MB cho mỗi khối và cho phép mạng lưới điều chỉnh giới hạn này. Bitcoin Core giữ nguyên giới hạn 1MB và tạo ra các sidechain bên ngoài chứa các giao dịch nhỏ, và nhúng chữ ký của các sidechain này vào blockchain chính - còn được gọi là Lightning Network.

Lightning Network - Bài toán về mở rộng mạng lưới

Mỗi khối trong blockchain được giới hạn ở kích thước 1MB nhằm tăng tính phân cấp của mạng lưới, tuy nhiên điều này cũng hạn chế khả năng xử lý giao dịch của mạng Bitcoin, làm phí giao dịch tăng và các giao dịch bị xử lý chậm. Vào ngày 24 tháng 8 năm 2017, Segregated Witness đã được đưa vào sử dụng, là tiền đề cho Lightning Network - là một lớp giao dịch con của mạng lưới Bitcoin blockchain chính với tính năng hợp đồng thông minh như của Ethereum. Điều này giúp khả năng xử lý các giao dịch trên Bitcoin blockchain tăng lên gần như vô hạn với chi phí rất thấp, bằng cách định tuyến giao dịch qua mesh network của các kênh thanh toán. Lightning Network đã được đưa vào thử nghiệm với phiên bản 1.0 từ tháng 12 năm 2017 với giao dịch đầu tiên tại Bitrefill, và sẽ được chính thức triển khai trong năm 2018.[74]